package com.shijie.sjoj.model.component.validate;

import java.util.HashMap;
import java.util.Map;

public class IncludeValidate {

    public static final Map<String, String> CITY_MAP = new HashMap<>();

    static {
        CITY_MAP.put("安徽", "安庆市、蚌埠市、亳州市、池州市、滁州市、阜阳市、合肥市、淮北市、淮南市、黄山市、六安市、马鞍山市、铜陵市、芜湖市、宿州市、宣城市");
        CITY_MAP.put("福建", "福州市、龙岩市、南平市、宁德市、莆田市、泉州市、三明市、厦门市、漳州市");
        CITY_MAP.put("甘肃", "白银、定西、甘南、嘉峪关、金昌、酒泉、兰州、临夏、陇南、平凉、庆阳、天水、武威、张掖");
        CITY_MAP.put("广东", "潮州、东莞、佛山、广州、河源、惠州、江门、揭阳、茂名、梅州、清远、汕头、汕尾、韶关、深圳、阳江、云浮、湛江、肇庆、中山、珠海");
        CITY_MAP.put("贵州", "安顺、毕节、贵阳、六盘水、黔东、黔南、黔西南、铜仁、遵义");
        CITY_MAP.put("海南", "白沙、保亭、昌江、澄迈、儋州、定安、东方、海口、乐东、临高、陵水、琼海、琼中、屯昌、万宁、文昌、五指山");
        CITY_MAP.put("河北", "保定、沧州、承德、邯郸、衡水、廊坊、秦皇岛、石家庄、唐山、邢台、张家口");
        CITY_MAP.put("河南", "安阳、鹤壁、焦作、济源、开封、洛阳、漯河、南阳、平顶山、濮阳、三门峡、商丘、新乡、信阳、许昌、郑州、周口、驻马店");
        CITY_MAP.put("黑龙江", "大庆、大兴安岭、哈尔滨、鹤岗、黑河、鸡西、佳木斯、牡丹江、七台河、齐齐哈尔、双鸭山、绥化、伊春");
        CITY_MAP.put("湖北", "鄂州、恩施、黄冈、黄石、荆门、荆州、十堰、随州、武汉、咸宁、孝感、襄阳、宜昌");
        CITY_MAP.put("湖南", "长沙、常德、郴州、衡阳、怀化、娄底、邵阳、湘潭、湘西、益阳、永州、岳阳、张家界、株洲");
        CITY_MAP.put("吉林", "白城、白山、长春、吉林、辽源、四平、松原、通化、延边");
        CITY_MAP.put("江苏", "常州、徐州、连云港、淮安、南京、南通、苏州、宿迁、泰州、无锡、盐城、扬州、镇江");
        CITY_MAP.put("江西", "南昌、抚州、赣州、吉安、景德镇、九江、萍乡、上饶、新余、宜春、鹰潭");
        CITY_MAP.put("辽宁", "鞍山、本溪、朝阳、大连、丹东、抚顺、阜新、葫芦岛、锦州、辽阳、盘锦、沈阳、铁岭、营口");
        CITY_MAP.put("内蒙古", "阿拉善、巴彦淖尔、包头、赤峰、鄂尔多斯、呼和浩特、呼伦贝尔、通辽、乌海、乌兰察布、锡林郭勒、兴安");
        CITY_MAP.put("宁夏", "固原、石嘴山、吴忠、银川、中卫");
        CITY_MAP.put("青海", "果洛、海北、海东、海南、海西、黄南、西宁、玉树");
        CITY_MAP.put("山东", "滨州、德州、东营、菏泽、济南、济宁、聊城、临沂、青岛、日照、泰安、威海、潍坊、烟台、枣庄、淄博");
        CITY_MAP.put("山西", "长治、大同、晋城、晋中、临汾、吕梁、朔州、太原、忻州、阳泉、运城");
        CITY_MAP.put("陕西", "安康、宝鸡、汉中、商洛、铜川、渭南、西安、咸阳、延安、榆林");
        CITY_MAP.put("四川", "阿坝、巴中、成都、达州、德阳、甘孜、广安、广元、乐山、凉山、泸州、眉山、绵阳、内江、南充、遂宁、雅安、宜宾、资阳、自贡");
        CITY_MAP.put("西藏", "阿里、昌都、拉萨、林芝、那曲、日喀则、山南");
        CITY_MAP.put("新疆", "阿克苏、阿勒泰、巴音郭楞、博尔塔拉、昌吉、哈密、和田、喀什、克拉玛依、克孜勒苏、石河子、塔城、图木舒克、吐鲁番、乌鲁木齐、五家渠、伊犁");
        CITY_MAP.put("云南", "保山、楚雄、大理、德宏、迪庆、红河、昆明、丽江、临沧、怒江、普洱、曲靖、文山、西双版纳、玉溪、昭通");
        CITY_MAP.put("浙江", "杭州、湖州、嘉兴、金华、丽水、宁波、衢州、绍兴、台州、温州、舟山");
        CITY_MAP.put("北京", "");
        CITY_MAP.put("重庆", "");
        CITY_MAP.put("上海", "");
        CITY_MAP.put("天津", "");
        CITY_MAP.put("澳门", "");
        CITY_MAP.put("香港", "");
        CITY_MAP.put("中国台湾", "");
    }

    /**
     * 有效的城市
     *
     * @param city 城市值
     * @return boolean
     */
    public static boolean validCity(String city) {
        // 分词
        String[] split = city.split(" ");
        // 判断省级是否存在
        String prov = CITY_MAP.get(split[0]);
        if (null != prov) {
            // 判断城市
            return (split.length == 1 || prov.contains(split[1])) && split.length < 3;
        }
        return false;
    }

    /**
     * 无效的城市值
     *
     * @param city 城市
     * @return boolean
     */
    public static boolean invalidCity(String city) {
        return !validCity(city);
    }


}
